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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一种驱动器的功能安全架构介绍

下图提供了驱动器实现安全功能的架构 具有如下特点: 1.通用基于总线或者非总线的架构。可以实现ethercat的FSOE,profinet的profisafe,或者伺服本体安全DIO现实安全功能。 2.基于1oo2D架构,安全等级可以达到sil3。 3.高可用性。单…

【数据库】PostgreSQL源码编译安装方式与简单配置(v16.2)

PostgreSQL源码编译安装方式与简单配置(v16.2) 一、PostgreSQL安装基本介绍1.1 几种PostgreSQL的安装方式1.2 删除原有的PostgreSQL1.3 编译安装过程简介 二、源码编译安装方式详情2.1 下载源代码2.2 编译安装运行 configure执行 make执行 make install …

制造业、能源等传统行业进行数字化转型时要注意哪些问题?

制造业、能源等传统行业在进行数字化转型时需要注意以下几个关键问题: 1、明确转型目标和战略规划:企业需要根据自身的业务特点、市场需求和长远发展目标,制定清晰的数字化转型战略。包括确定转型的重点领域、预期成果、时间表和资源投入。 …

【二叉树】【递归】Leetcode 543. 二叉树的直径

【二叉树】【递归】Leetcode 543. 二叉树的直径 解法1 ---------------🎈🎈题目链接🎈🎈------------------- 解法1 class Solution {int result 0; // 定义一个全局变量result收获每一个节点为转折点的长度public int diame…

Python基础语法及应用

一、基本数据类型及应用 1、基本数据 (1)整数(int) 在 Python 中,整数是一种基本的数据类型,用于表示没有小数部分的数字,整数没有固定的最大值,可以根据系统内存动态调整。Pytho…

LeetCode-移除元素

题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长…

最简单知识点PyTorch中的nn.Linear(1, 1)

一、nn.Linear(1, 1) nn.Linear(1, 1) 是 PyTorch 中的一个线性层(全连接层)的定义。 nn 是 PyTorch 的神经网络模块(torch.nn)的常用缩写。 nn.Linear(1, 1) 的含义如下: 第一个参数 1:输入特征的数量…

服务器 安装1Panel服务器运维管理面板

服务器 安装1Panel服务器运维管理面板 SSH链接服务器安装1Panel 出现此提示时输入目标路径,须以“/”开头,默认:/opt,本例:/www。 出现此提示时输入目标端口,须未被使用的端口,默认&#xff1…

媒体邀约专访如何深入地做一篇专访报道?流程分享

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 进行媒体邀约专访并深入撰写一篇专访报道是一个系统性工作,涉及多个环节。以下是一个详细的流程分享: 一、前期准备 确定专访目的与主题:明确专访希望…

一文了解低功耗蓝牙BLE

低功耗蓝牙技术可以构建两种类型的设备:双模设备和单模设备。双模设备既支持经典蓝牙又支持低功耗蓝牙。单模设备只支持低功耗蓝牙。还有仅支持经典蓝牙的设备。 在链路层,设备被分为广播者、扫描者、从设备和主设备。广播者是传输数据包的设备,扫描者是接收广播者的数据包…

华大单片机新建工程步骤

1.新建文件夹,比如00_LED 2.拷贝 hc32f460_ddl_Rev2.2.0\driver 到 00_LED 3.拷贝 hc32f460_ddl_Rev2.2.0\mcu\common 到 00_LED 4.拷贝 hc32f460_ddl_Rev2.2.0\example\ev_hc32f460_lqfp100_v2\gpio\gpio_output\source 到 00_LED 5.拷贝 hc32f460_ddl_Rev2.2.…

【C++】C++11可变参数模板

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 可变参数模板的定义…

vscode-tasks.json自定义任务

以下所有内容,参考自VScode官方文档: vscode_tasks-docs任务说明文档vscode_variables-reference-docs变量说明文档vscode addtional docs for tasksvscode launch.json 属性设置文档,(下文没有介绍,没有涉及) 浅浅记录一下个人对vscode任务(task)的理解,还谈不上使用. 文章目…

Linux 性能分析工具大全

vmstat--虚拟内存统计 vmstat(VirtualMeomoryStatistics,虚拟内存统计)是 Linux 中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU 等的整体情况进行监视。vmstat 的常规用法:vmstat interval times 即每隔 interval 秒采…

德斯兰压缩机邀您体验2024第13届国际生物发酵展

参展企业介绍 德斯兰压缩机(上海)有限公司是一家专注于研发和生产“高效节能”和“无油环保”空气压缩机的的高新技术企业。公司成立于2005年,注册资金326万美金,生产基地坐落于上海市嘉定区,建筑面积高达25,500m2。公…

vscode 连接远程服务器 服务器无法上网 离线配置 .vscode-server

离线配置 vscode 连接远程服务器 .vscode-server 1. .vscode-server下载 使用vscode连接远程服务器时会自动下载配置.vscode-server文件夹,如果远程服务器无法联网,则需要手动下载 1)网址:https://update.code.visualstudio.com…

API接口在数据分析中的应用:淘宝商品信息获取实例

在数字化时代,数据分析已经成为各行各业不可或缺的一部分。无论是市场调研、竞争对手分析,还是产品优化、用户行为研究,数据分析都发挥着至关重要的作用。而API接口作为数据获取的重要渠道,其在数据分析中的应用也日益广泛。本文将…

用vue.js写案例——ToDoList待办事项 (步骤和全码解析)

目录 一.准备工作 二.编写各个组件的页面结构 三.实现初始任务列表的渲染 四.新增任务 五.删除任务 六.展示未完成条数 七.切换状态-筛选数据 八.待办事项(全)代码 一.准备工作 在开发“ToDoList”案例之前,需要先完成一些准备工作&a…

【AOP入门案例深解析】

AOP 1.AOP简介 AOP(Aspect Oriented Programming)面向切面编程,是一种编程范式,指导开发者如何组织程序结构 OOP(Object Oriented Programming)面向对象编程 作用:在步惊动原始设计的基础上进行…

蓝桥杯-AT24C02

1.概述 2.管脚 A1-A3接地 WP保护接地 代码实现 void EEPROM_Write(unsigned char*EEPROM_String,unsigned char addr,unsigned char num) {I2CStart();I2CSendByte(0xA0);I2CWaitAck();I2CSendByte(addr);I2CWaitAck();while(num--){I2CSendByte(*EEPROM_String);I2CWaitAck()…