diffusion model(十五) : IP-Adapter技术小结

info
paperhttps://arxiv.org/pdf/2308.06721.pdf
codehttps://github.com/tencent-ailab/IP-Adapter
org.Tencent AI Lab
个人博客地址http://myhz0606.com/article/ip_adapter

1 Motivation

为了对文生图diffusion model进行特定概念的定制,常用LoRA[1]、textual inversion[2]等inference before fine-tune的方法。此类方法有一个弊端:每一个新的概念都需要重新训练一个权重,比较麻烦。那么,能不能有一个方法inference前无须微调,只需给一张reference image,就能将该图片的概念融入到生成过程中?这就是IP-adapter想要解决的问题。

2 Method

IP-adapterLoRA等工作类似,也是一个PEFT(parameter efficient fine-tuning)的方法。区别在于,一般LoRA等方法只须定制特定概念,训练数据只需少量(一般只需数十张)、高质量特定概念的图片。而IP-adapter希望diffusion model能够理解开放式的图片特征,并依此生成图片,故为了保证泛化性,需要在大量数据上进行训练。

2.1 模型架构

为了降低训练成本,作者引入了预训练的CLIP[3] image encoder来初步提取reference image的图片特征,随后接了一个Linear+layer norm层来调整特征的维度。随后设计了一个decoupled cross-attention 模块,将image feature融入到diffusion model的生成过程中。通过训练让diffusion model能够理解image prompt。(pipeline中只有 🔥的module更新权重,其它module freeze。)

在这里插入图片描述

2.2 decoupled cross-attention

decoupled cross-attention相比文生图的cross attention多了两个训练参数 W i k ′ , W i v ′ W_{i}^{k'},W_{i}^{v'} Wik,Wiv,起始阶段用text分支的 W i k , W i v W_{i}^{k},W_{i}^{v} Wik,Wiv进行初始化。(下标 i i i代表第 i i icross-attention)。

可以通过调整image embedding的权重 λ \lambda λ来决定image condition的影响程度。

在这里插入图片描述

2.3 模型训练

模型的训练数据采用LAION-2BCOYO-700M的子集,总计10M左右。训练目标和经典的diffusion model[4]一致。

L s i m p l e = E x 0 , ϵ , c t , c t , t ∣ ∣ ϵ − ϵ θ ( x t , c t , c i , t ) ∣ ∣ 2 . { \mathcal L } _ { \mathrm { s i m p l e } } = { \mathbb E } _ { { \boldsymbol { x } } _ { 0 } , \epsilon , c _ { t } , c _ { t } , t } \vert \vert \epsilon - \epsilon _ { \theta } ( { \boldsymbol { x } } _ { t } , c _ { t } , c _ { i } , t ) \vert \vert ^ { 2 } . Lsimple=Ex0,ϵ,ct,ct,t∣∣ϵϵθ(xt,ct,ci,t)2.

同样为了classifier-free guidance训练时随机drop condition。

3 Result

IP-Adapter的一大优势是他能结合其它condition tool。

在这里插入图片描述

下图展示了IP-Adapter和其它方法的对比结果

在这里插入图片描述

在这里插入图片描述

IP-adapter还能做instruction editing

在这里插入图片描述

(更多结果请见原论文)

4 summary

IP-Adapter能接受image作为prompt,实现inference without fine-tune的定制生成。虽然在单一概念比不上精心微调的LoRA等定制方法,但在一些精细化要求没那么高的场景,IP-Adapter是一个非常有用的工具。

Reference

[1] LoRA: Low-Rank Adaptation of Large Language Models

[2] An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion

[3] Learning Transferable Visual Models From Natural Language Supervision

[4] Denoising Diffusion Probabilistic Models

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

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

相关文章

JDK下载及安装说明

1.JDK下载 访问oracle官网:http://www.oracle.com 在首页点击Downloads,进入oracle软件下载页。 在下载页面,点击Java。 选择Java (JDK) for Developers,点击。 在 Java SE Downloads 页面,点击中间的DO…

装机指导。

everything winrar snipaste cmake git tortoisegit tortoisesvn inno setup vs2022 安装的时候注意sdk路径一定要默认!! 否则你会发现在你的sdk安装路径的根盘符下会多出一个Windows Kits,强迫症接受不了 默认的会跟已有的装在一起…

【Python系列】读取 Excel 第一列数据并赋值到指定列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Linux的学习之路:4、权限

一、Linux权限的概念 权限我们都熟悉,最常见的就是在看电视时需要vip这个就是权限,然后在Linux就是有两个权限,就是管理员也就是超级用户和普通的用户 命令:su [用户名] 功能:切换用户。 例如,要从root用户…

ZLMediaKit ubantu 下编译

1、获取代码 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init二、依赖库 Debian系(包括ubuntu)系统下安装依赖的方法: #除了…

Python-VBA函数之旅-ascii函数

ascii函数在Python中主要用于将对象(特别是字符和字符串)转换为它们的ASCII表示形式。这种转换在处理文本数据、调试代码以及确保文本以 ASCII 格式存储或传输时非常有用。常见应用场景有: 1、调试和文本处理:当处理包含非ASCII字符(如Unicode字符)的文…

景联文科技:为AI大模型提供高质海量训练数据

在全球AI浪潮的推动下,大量训练数据已成为AI算法模型发展和演进中的关键一环。 艾瑞咨询数据显示,包括数据采集、数据处理(标注)、数据存储、数据挖掘等模块在内的AI基础数据服务市场,将在未来数年内持续增长。 预计到…

算法:完全背包问题dp

文章目录 一、完全背包问题的特征二、定义状态三、状态转移四、降维优化五、参考例题5.1、Acwing:3.完全背包问题5.2、Acwing:900. 整数划分 一、完全背包问题的特征 完全背包问题是动态规划中的一种经典问题,它的主要特征可以总结如下&…

ES6中 Promise的详细讲解

文章目录 一、介绍状态特点流程 二、用法实例方法then()catchfinally() 构造函数方法all()race()allSettled()resolve()reject() 三、使用场景# 参考文献 一、介绍 Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(…

2024/4/5—力扣—在排序数组中查找元素的第一个和最后一个位置

代码实现: 思路:二分法 方法一:分别查找左右侧边界 /*** Note: The returned array must be malloced, assume caller calls free().*/ int GetTargetFirstPosition(int *nums, int numsSize, int target) {int l 0, r numsSize - 1;while …

springboot无人便利店信息管理系统ssm+tomcat+java

jdk版本:1.8 及以上 ide工具:IDEA 或者eclipse 数据库: mysql 编程语言: java 框架:SSM/springboot都有 maven: 3.6.1 前端:layuibootstrapjsp 详细技术:HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat本文以java实现…

Jenkins使用-绑定域控与用户授权

一、Jenkins安装完成后,企业中使用,首先需要绑定域控以方便管理。 操作方法: 1、备份配置文件,防止域控绑定错误或授权策略选择不对,造成没办法登录,或登录后没有权限操作。 [roottest jenkins]# mkdir ba…

iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑

引言 在 iOS 开发中,将 IPA 文件上传到苹果开发者中心是一个重要的步骤。通常情况下,我们需要使用 Mac 电脑上的 Xcode 或 Application Loader 工具来完成这个任务。然而,如果你没有 Mac 电脑,也没有关系,本文将介绍一…

Windows编译运行yolov9-bytetrack-tensorrt (C++)

Windows编译运行yolov9-bytetrack-tensorrt(C) 1 基础环境2 编译yolov9-bytetrack-tensorrt(1)下载yolov9-bytetrack-tensorrt源码(2)修改CMakeLists.txt(3)CMake编译 3 yolov9模型转…

css实现各级标题自动编号

本文在博客同步发布,您也可以在这里看到最新的文章 Markdown编辑器大多不会提供分级标题的自动编号功能,但我们可以通过简单的css样式设置实现。 本文介绍了使用css实现各级标题自动编号的方法,本方法同样适用于typora编辑器和wordpress主题…

有没有适合运动佩戴的耳机?最适合运动使用的开放式耳机推荐

哪种耳机更适合运动,挂耳式和入耳式哪种更合适呢?答案是挂耳式的耳机更适合运动,适用的场景也更多。无论你是在家还是在外面运动,都很合适。挂耳式耳机也可以叫开放式耳机,它开放式的设计可以让我们更好的感知到周围嘈…

1132A安捷伦1132A示波器探头

181/2461/8938产品概述: 带宽: 输入阻抗: 差分输入R: 50千欧差分输入C: 0.27-0.34 pF单端输入电阻:25千欧单端输入C: 0.44-0.67 pF 连通性: E2669A差分/单端连接套件E2668A单端连接套件用于InfiniiMax探头的E2675A差分浏览器套件E2677A InfiniiMax 12 GHz差分焊…

APx500音频分析仪硬件简介

两通道模拟输出,两通道或以上的模拟输入接口 线性编码数字音频接口(AES/EBU,TOSLINK,SPDIF)Linear PCM 脉冲密度调制码流(需要APx-PDM选件支持) Bluetooth蓝牙音频码流(需APx-BT选件支持) 最…

DataGrip 2024 for Mac/Win—数据库管理的得力助手

在当今的数据驱动世界中,高效地管理数据库至关重要。无论您是数据库管理员、开发人员还是数据分析师,DataGrip 2024 都是您不可或缺的工具。 DataGrip 2024 适用于 Mac 和 Win 系统,具有以下卓越特性: 全面支持多种数据库&#…

uniapp请求后端接口

新建文件夹utils const request (config) > {// 拼接完整的接口路径config.url http://mm.test.cn config.url;//这里拼接的是访问后端接口的地址,http://mm.test.cn/prod-api/testconsole.log(config.url)//判断是都携带参数if(!config.data){config.data …