InstantID Zero-shot Identity-Preserving Generation in Seconds

2024-03-14 20:12

本文主要是介绍InstantID Zero-shot Identity-Preserving Generation in Seconds,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

InstantID: Zero-shot Identity-Preserving Generation in Seconds

TL; DR:InstantID = IP-Adapter + (Face) ControlNet,实现了具有较高保真度的人脸 ID 生成。

方法

InstantID 想做到的事情是:给定一张参考人脸 ID 图片,生成该 ID 的多种姿势,多种风格的图片,并保证和参考图人脸 ID 的保真度。模型的整体结构总览如下图所示,主要由三个模块组成:

  1. Face(ID) embedding 模块:用于捕捉参考图的人脸 ID 特征
  2. 一个轻量的适配模块(加解耦的交叉注意力层):用于理解视觉 prompt
  3. IdentityNet:用于人脸的精细生成

在这里插入图片描述

ID Embedding

CLIP 这种弱对齐数据训练出的模型,提取出的 image features 比较泛,比较杂,粒度比较粗。不适合于提取精细的、高保真的人脸特征。作者这里用了一个人脸识别或 ReID 中预训练好的人脸模型来提取参考图像中的人脸 ID 特征。

Image Adapter

image prompt 可以用来控制一些很难用文本描述的生图细节(如人体姿态、纹理细节等),极大地补充了图像生成模型的可控生成能力。与 IP-Adapter 类似,InstantID 这里用交叉注意力层(图示上方)来将图片特征注入到扩散模型的 UNet 中。不同之处还是没有用 CLIP 的 image embedding,而与 ID embedding 一样是用的人脸的 Embedding。

IdentityNet

虽然模型已经能够同时参考文本 prompt 和图像 prompt 进行生成了(相当于 IP-Adapter),但想要精确地保持参考人脸的特征,生成出 ID 一致的高保真度的人脸,这还不够。因此,作者还引入了一个 IdentityNet,其实就是一个 Face ControlNet。但是与 ControlNet 有两点不同:一是没有使用全部的人脸关键点,而是使用了五点,这是为了对人脸有控制的同时保持一定的自由度;二是没有使用文本 prompt 特征,而是将 face embedding,通过 cross attention 引入进来,这是为了避免额外的文本信息和背景信息对人脸保真的干扰。

效果展示

看一下 InstantID 主页 show 出来的不同人脸在不同画风、不同 prompt 下的生成结果,可以看到保真度还是很高的,基本都能认出来。

在这里插入图片描述

总结

InstantID = IP-Adapter + (Face) ControlNet 看效果人脸的保真度还是不错的。但是仅能聚焦在人脸,可以试着搞搞人物全身特征的定制化。

这篇关于InstantID Zero-shot Identity-Preserving Generation in Seconds的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809598

相关文章

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

Python安装llama库出错“metadata-generation-failed”

Python安装llama库出错“metadata-generation-failed” 1. 安装llama库时出错2. 定位问题1. 去官网下载llama包 2.修改配置文件2.1 解压文件2.2 修改配置文件 3. 本地安装文件 1. 安装llama库时出错 2. 定位问题 根据查到的资料,发现时llama包中的execfile函数已经被下线了,需要我们手动修改代码后

Show,Attend and Tell: Neural Image Caption Generation with Visual Attention

简单的翻译阅读了一下 Abstract 受机器翻译和对象检测领域最新工作的启发,我们引入了一种基于注意力的模型,该模型可以自动学习描述图像的内容。我们描述了如何使用标准的反向传播技术,以确定性的方式训练模型,并通过最大化变分下界随机地训练模型。我们还通过可视化展示了模型如何能够自动学习将注视固定在显着对象上,同时在输出序列中生成相应的单词。我们通过三个基准数据集(Flickr9k,Flickr

《Zero-Shot Object Counting》CVPR2023

摘要 论文提出了一种新的计数设置,称为零样本对象计数(Zero-Shot Object Counting, ZSC),旨在测试时对任意类别的对象实例进行计数,而只需在测试时提供类别名称。现有的类无关计数方法需要人类标注的示例作为输入,这在许多实际应用中是不切实际的。ZSC方法不依赖于人类标注者,可以自动操作。研究者们提出了一种方法,可以从类别名称开始,准确识别出最佳的图像块(patches),用

One-Shot Imitation Learning

发表时间:NIPS2017 论文链接:https://readpaper.com/pdf-annotate/note?pdfId=4557560538297540609&noteId=2424799047081637376 作者单位:Berkeley AI Research Lab, Work done while at OpenAI Yan Duan†§ , Marcin Andrychow

One-Shot Imitation Learning with Invariance Matching for Robotic Manipulation

发表时间:5 Jun 2024 论文链接:https://readpaper.com/pdf-annotate/note?pdfId=2408639872513958656&noteId=2408640378699078912 作者单位:Rutgers University Motivation:学习一个通用的policy,可以执行一组不同的操作任务,是机器人技术中一个有前途的新方向。然而,

class _ContiguousArrayStorage deallocated with non-zero retain count

Xcode报错 : Object 0x11c614000 of class _ContiguousArrayStorage deallocated with non-zero retain count 2. This object's deinit, or something called from it, may have created a strong reference to self w