IP一致性:指的是给定输入的图像,要求保持图像中的ID不变,IP可能是Identity Property,要求能够识别出是同一个身份。
目前通过IP的一致性技术,可以用于短视频短剧上,是一个新兴的市场技术。
# IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models
Paper : https://papers.cool/arxiv/2308.06721
Page : https://ip-adapter.github.io/
类似于ControlNet,想要在已经预训练的网络中增加Adapter(类似于LLM中),从而维持IP一致性。
动机:目前如果在预训练中的网络中添加额外的信息,通常是直接和其他信息(Text)Concat在一起通过Cross-Layer,本文认为这样子会导致信息融合在一起,无法保证单一模态的信息强度,就容易导致IP变形。
![IP一致性_2024-07-18_](https://s2.loli.net/2024/07/18/Mxb9zRu2DgVY7Os.png)
通过使用两个cross-attn,将不同模态的信息分离,但是在这两个cross-attn的Q数输入是一致的。具体公式如下
$$\begin{aligned}\mathbf{Z}^{new}=\mathrm{Softmax}(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d}})\mathbf{V}+\mathrm{Softmax}(\frac{\mathbf{Q}(\mathbf{K}^{\prime})^{\top}}{\sqrt{d}})\mathbf{V}^{\prime}\\\mathrm{where~}\mathbf{Q}=\mathbf{Z}\mathbf{W}_{q},\mathbf{K}=\boldsymbol{c}_{t}\mathbf{W}_{k},\mathbf{V}=\boldsymbol{c}_{t}\mathbf{W}_{v},\mathbf{K}^{\prime}=\boldsymbol{c}_{i}\mathbf{W}_{k}^{\prime},\mathbf{V}^{\prime}=\boldsymbol{c}_{i}\mathbf{W}_{v}^{\prime}\end{aligned}$$
需要注意的是两个Cross-áttn的Query输入是一致的,而对于文本的cross-attn是完全冻结的。
# DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
Project page: https://dreambooth.github.io/
![IP一致性_2024-07-22_](https://s2.loli.net/2024/07/22/Pr1BGqQf8KdTJXw.png)
DreamBooth可以给定3~5张主体图像,微调预训练模型,生成主体类似的图像,它的核心思想通过微调模型,使得TextEncoder的某个特定token可以和模型生成的特定主体(Obeject)相联系,例如将Kitty和我家的狗联系起来,如果输入的prompt含有“Kitty”,那么模型生成的图像中,主体就是我家的狗。
Method:
1. 如何设计训练数据。文本提示采用简单的结构,通常包含一个独特标识符和主体的类别名称。例如,"A [V] dog",其中"[V]"是独特标识符,"dog"是主体的类别名称。V实在 tokenizer寻找出现频数较少的。
2. 为了防止模型在微调过程中逐渐忘记如何生成与目标主体相同类别的其他主体(即语言漂移),作者提出了一种类别特定先验保留损失(Class-specific Prior Preservation Loss)。先在一个类别中生成几张图像,要求模型在微调的时候,对于该类别生成尽量一致的图像,只有在输入特定的token的时候,才生成特定的主体。
![IP一致性_2024-07-26_](https://s2.loli.net/2024/07/26/L9PxfrA8eu3vkMY.png)
$$\mathbf{L} = \mathbb{E}_{\mathbf{x},\mathbf{c},\boldsymbol{\epsilon},\boldsymbol{\epsilon}^{\prime},t}[w_t\|\hat{\mathbf{x}}_\theta(\alpha_t\mathbf{x}+\sigma_t\boldsymbol{\epsilon},\mathbf{c})-\mathbf{x}\|_2^2+\\\lambda w_{t^{\prime}}\|\hat{\mathbf{x}}_\theta(\alpha_{t^{\prime}}\mathbf{x}_{\mathrm{pr}}+\sigma_{t^{\prime}}\boldsymbol{\epsilon}^{\prime},\mathbf{c}_{\mathrm{pr}})-\mathbf{x}_{\mathrm{pr}}\|_2^2],\\ \mathbf{x}_{pr}是class \ image的形式$$
- 微调预训练模型:使用少量(大约3-5张)特定主体的图像对预训练的文本到图像扩散模型进行微调。这样做的目的是将特定主体的实例嵌入到模型的输出域中。
- 使用唯一标识符:为每个主体分配一个独特的标识符,并在文本提示中结合使用这个标识符和主体的类别名称(例如,“一个[V]狗”),这样可以帮助模型在保持类别先验的同时,学习将标识符与特定主体绑定。
- 设计文本提示:为了简化过程并避免编写详细的图像描述,作者选择使用简单的文本提示,如“a [V] [class]”,这有助于将模型对特定类别的先验知识与主体的独特标识符结合起来。
- 罕见标识符(Rare-token Identifiers):为了避免模型对标识符有预先的知识,作者寻找词汇表中的罕见标记,并将其反转到文本空间,以最小化标识符具有强先验的概率。
- 类别特定先验保留损失(Class-specific Prior Preservation Loss):为了解决语言漂移问题(即模型在微调后逐渐忘记如何生成与目标主体相同类别的其他主体),作者提出了一种新的损失函数。这种损失函数通过使用模型自身生成的样本来监督模型,以保留类别先验,并鼓励生成多样化的图像。
在Diffuser中有DreamBooth的实现,可以支持微调TextEncoder和UNet,在训练前生成class images。
# InstantID : Zero-shot Identity-Preserving Generation in Seconds (2024.01)
[Page](https://instantid.github.io/)
![IP一致性_2024-08-12_](https://smms.app/2024/08/12/ryfb2DpVJizUjnq.png)
这篇论文试图解决的问题是个性化图像合成中的一个关键挑战:在保持高保真度的同时,如何实现零次拍摄(zero-shot)的身份(ID)保持生成。论文讨论了以下几个方面的问题:
- 现有方法的局限性:现有的个性化图像生成方法,如Textual Inversion、DreamBooth和LoRA等,虽然在生成与参考图像风格、主题或角色ID一致的图像方面取得了显著进展,但它们的实际应用受到高存储需求、漫长的微调过程以及需要多个参考图像的限制。
- ID嵌入方法的挑战:现有的基于ID嵌入的方法虽然只需要一次前向推理,但面临一些挑战,如需要对大量模型参数进行微调、与社区预训练模型不兼容,或者无法保持高面部保真度。
- 身份细节的精确保留:人类面部身份(ID)涉及更微妙的语义,并且需要比一般风格或对象更高的细节和保真度标准,这使得生成精确保留身份细节的图像成为一个特别具有挑战性的任务。
目前,需要资源:
DreamBooth(需要>5张图片,微调整个模型) > IP-Adapter(需要>5张图片,只用微调Image Embedding的crossAttention Layer) $\approx$ InstantID(需要1张脸部图片,微调一个IdentityNet)
## Method
论文提出了一种名为InstantID的方法来解决零次拍摄身份保持图像生成的问题。InstantID的核心设计包括以下几个关键部分:
- ID嵌入:使用预训练的面部模型(目前非常成熟的人脸识别模型来提取Embedding)来提取参考面部图像中的身份嵌入,这些嵌入包含了丰富的语义信息,如身份、年龄和性别等。与CLIP图像嵌入相比,这种方法能够提供更强的语义细节和更高的保真度。
- 图像适配器:引入了一个轻量级的适配器模块,该模块具有解耦的交叉注意力机制(和IP-Adapter一致),允许将图像作为视觉提示与文本提示一起用于图像生成过程。这种设计使得InstantID能够灵活地处理各种风格的图像个性化。
- IdentityNet:设计了一个IdentityNet(就是一个ControlNet,只不过额外的监督信号是Face Embedding),它通过整合面部图像、面部关键点图像和文本提示来引导图像生成过程。IdentityNet在生成过程中完全由面部嵌入指导,而不使用任何文本信息,从而确保了面部身份的保留。
训练和推理策略:在训练过程中,只优化Image Adapter和IdentityNet的参数,而保持预训练文本到图像扩散模型的参数不变。在推理过程中,InstantID能够通过单步前向传播生成身份保持的图像,无需微调。
![IP一致性_2024-08-12_](https://s2.loli.net/2024/08/12/C36A8rwLTgsW5cV.png)
它的模型能够在保证Face的特征情况下,使用文本对于人脸生成进行控制,也是小红书之前火了一阵子的模型.
# An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion(Textual Inversion)

IP一致性论文的更多相关文章

  1. CCProxy

    我在之前的博客里提到了用Teamviewer + CCProxy做内网穿透,当时只是简单提了一下,因为发现这种方式网速比较慢.今天又用到了它,虽然慢点,但是总比没的用好,哈哈哈.不得不感叹CCProx ...

  2. Computer Networking: A Top Down Approach

    目录 Chapter 1: Computer Networks and the Internet 1. What is the Internet? 2. The Network Edge 3. The ...

  3. Computer Neworking: A Top-Down Approach

    目录 Chapter 1: Computer Networks and the Internet 1. What is the Internet? 2. The Network Edge 3. The ...

  4. 分布式一致性算法:Raft 算法(论文翻译)

    Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现.本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的 ...

  5. 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)

    编者按:这篇文章来自简书的一个位博主Jeffbond,读了好几遍,翻译的质量比较高,原文链接:分布式一致性算法:Raft 算法(Raft 论文翻译),版权一切归原译者. 同时,第6部分的集群成员变更读 ...

  6. Raft 一致性算法论文译文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为<In search of an Understandable Consensus Algorithm (Extended Vers ...

  7. Raft一致性共识算法论文学习

    论文地址:https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 看完raft共识算法,脑袋非常懵,所以写一篇学习笔记,记录一下. raft ...

  8. 搜索学术论文訪问google的能用的几个IP地址

    google搜索引擎打不开时的解决的方法,谷歌(google)的IP是多少? google IP镜像. 这里搜集了几个经过測试可用的IP,用来在不能域名訪问google的时候进行訪问 更新一个最新的. ...

  9. 【论文阅读】分布一致性算法Paxos 《The Part-Time Parliament》

    论文原文.翻译稿.PPt:https://1drv.ms/u/s!Ak-jGl23kTuMimOZzV-MyLQUYmsN?e=DL1xHD

  10. 服务发现 ap cp 强一致性 最终一致性 dns vip ip

    为什么基于域名 08 | 服务发现:到底是要CP还是AP? https://time.geekbang.org/column/article/208171 为什么需要服务发现?先举个例子,假如你要给一 ...

随机推荐

  1. DHorse v1.5.1 发布,基于 k8s 的发布平台

    版本说明 新增特性 支持k8s的v1.30.x版本: 优化特性 优化回滚功能: 修复注册来源的回滚问题: 新增和修改应用时校验应用名: 升级kubernetes-client至v6.13.0: 调整部 ...

  2. 安装Ingress-Nginx

    目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程. 下载安装文 ...

  3. Win10下载纯净版ISO镜像

    进入windows官网下载页面 1.F12 进入开发者模式->选择浏览模式为手机->机型设置为Ipad Air ->刷新页面->下载选项出现 下图第二步选择完成后,需要刷新一下 ...

  4. LeetCode11. 盛最多水的容器题解

    LeetCode11. 盛最多水的容器题解 题目链接: https://leetcode.cn/problems/container-with-most-water 示例 思路 暴力解法 定住一个柱子 ...

  5. k8s livenessprobe和readinessprobe详解

    一.为什么需要容器探针 如何保持Pod健康 只要将pod调度到某个节点,Kubelet就会运行pod的容器,如果该pod的容器有一个或者所有的都终止运行(容器的主进程崩溃),Kubelet将重启容器, ...

  6. react为什么不用数组的下标来绑定key

    最近在看一本名叫<深入浅出React和Redux>这一书,里面谈到了react的dom更新比对,记录一下. 假设有这么一个组件 <ul> <ListItem text=& ...

  7. LSTM实现文本情感分类demo

    import torch import torch.optim as optim import torch.nn as nn import numpy as np import torch.nn.fu ...

  8. 用这开源小书学 Docker,香!

    > 最新.全面.通俗.可多端阅读的 Docker 教程小书.>> 编程导航开源仓库:https://github.com/liyupi/code-navDocker 可以说是一个改变 ...

  9. 阅读翻译Mathematics for Machine Learning之2.6 Generating Set and Basis

    阅读翻译Mathematics for Machine Learning之2.6 Generating Set and Basis 关于: 首次发表日期:2024-07-19 Mathematics ...

  10. C# RSA非对称加密、解密及格式转换

    前言 本文主要介绍如何使用.Net自带API结合BouncyCastle类库实现RSA加密和解密,密钥生成和密钥格式转换. 一.RSA介绍 RSA加密算法是1977年由Ron Rivest.Adi S ...