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

### Stable Diffusion IP-Adapter 的使用方法及教程 #### 一、IP-Adapter 功能概述 IP-Adapter 是一种轻量级适配器,旨在增强预训练文本到图像扩散模型的图像提示能力。它可以通过上传参考图像将其转换为图像提示词,从而实现精确的风格迁移效果[^2]。 #### 二、安装与配置环境 为了使用 IP-Adapter,需先搭建好 Stable Diffusion WebUI 环境并加载 ControlNet 插件。以下是具体操作说明: 1. **下载依赖文件** - 下载 `ip-adapter` 模型权重文件(如 ip-adapter_sd15.pth 或其他变体),这些文件通常可以在开源社区获取[^3]。 2. **放置模型文件** 将下载好的 `.pth` 文件放入指定路径下,例如 `models/controlnet/` 目录中[^4]。 3. **启用插件支持** 在启动脚本中确保启用了 ControlNet 支持,并确认其版本兼容最新发布的 IP-Adapter 版本[^5]。 #### 三、实际应用流程 以下是基于 Stable Diffusion WebUI 实现图片风格迁移的具体步骤: 1. **选择模式** 进入界面后,在生成选项卡中切换至“文生图”模式。 2. **调整参数** 配置 ControlNet 单元中的相关参数: - 设置模块类型为 `ip-adapter`; - 调整权重比例以平衡输入图像的影响程度; - 如果仅关注面部特征,则可选用专门优化的人脸子集模型 `ip-adapter-plus-face_sd15`。 3. **提供参考素材** 提供一张或多张作为样式的参考图片,系统会自动提取其中的关键视觉特性。 4. **执行渲染过程** 填写描述性的文字指令配合上述设定完成最终作品创作。 ```python from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler import torch model_id = "runwayml/stable-diffusion-v1-5" scheduler = EulerAncestralDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler") pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler).to("cuda") prompt = "a photo of an astronaut riding a horse on mars" image = pipe(prompt).images[0] # Save the image to disk. image.save("./astronaut_rides_horse.png") ``` 以上代码片段展示了如何利用官方库构建基础管道结构来调用 SD API 接口[^1]。 --- #### 四、优势特点总结 相比传统方式,采用 IP-Adapter 可带来如下益处: - 更加灵活可控的结果表现力; - 显著降低手动编写复杂 prompt 所需时间成本; - 对特定领域比如动漫化处理具备独特专精性能。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值