IPAdapter全面解析,万字长文带你一次入门感受IPA的魅力

4,259 阅读15分钟

嘿,各位小伙伴们!今天咱们要来聊聊 Stable Diffusion 里超有趣的 IPAdapter 啦!

所有SD的玩家应该都有这样的感受,IPAdapter 就像是给 Stable Diffusion 施了魔法一样。它能让图像生成变得更加独特和有趣。

想象一下,它就像是一个神奇的画笔,能在图像的世界里挥洒出各种奇妙的效果。它可以根据我们的需求和喜好,对生成的图像进行巧妙的调整和变换。

比如说,我们想要一个超级酷炫的科幻风格图像,IPAdapter 就能大展身手,帮我们实现这个愿望。或者我们想要一个温馨可爱的场景,它也能轻松搞定!

IPAdapter是什么?

一个有效的和轻量级的适配器,以实现图像提示能力的预训练的文本到图像的扩散模型。仅具有22 M参数的IP适配器可以实现与微调的图像提示模型相当甚至更好的性能。IP适配器不仅可以推广到其他自定义模型微调从相同的基础模型,但也可控生成使用现有的可控工具。此外,图像提示还可以与文本提示很好地工作以完成多模式图像生成。

IPAdapter是非常强大的图像到图像调节模型。参考图像的主体或者只是风格可以容易地转移到下一步。

Think of it as a 1-image lora. 把他想象成一张图的Lora。

我理解的话它就是一个将图像token转变为和文字prompt一样,以此去调整原来文生图,达到他最后想要的结果。

我们本次文章还是以comfyui为主,下面所有的内容介绍都是基于comfyui。

IPAdapter安装

Github地址:github.com/cubiq/Comfy…

插件安装

comfyui manager安装 搜索IPAdapter,安装即可

或者使用git和压缩包安装即可。

模型下载

需要把下面的这些模型都按照相应的名称和路径进行下载。 名字一定要对,不对就进行重命名,一定要保证名字对,否则影响后期加载

名字一定要对,不对就进行重命名,一定要保证名字对,否则影响后期加载

名字一定要对,不对就进行重命名,一定要保证名字对,否则影响后期加载

无法进行模型发下载的同学,可以看文末,有网盘地址提供。

文生图接入**IPA**

加载最简单的文生图工作流,上面说过IPA的本质其实就是图生图的过程,那必然需要载入图像。

IpadapterPlus升级最重要的一点就是这个节点, ipadapter统一加载器 ,通过这个节点我们不再需要把ipa模型,clip模型手动加载,直接一个节点就搞定了。这个节点最便利的地方是如果我们加载sd1.5模型,会自动加载ipa对应的1.5模型,如果我们加载sdxl模型,这个节点会自动加载ipa对应的sdxl模型。

这里我给了一个正向提示词:模型选择的是写实的麦橘写实v7模型。

closeup of a fierce warrior woman wearing a full armor at the end of a battle

high quality, detailed


战斗结束时,一位身穿全套盔甲的凶猛女战士的特写

高质量、详细

负面提示词是一些通用的,预防低质量的词:

blurry, noisy, messy, lowres, jpeg, artifacts, ill, distorted, malformed

左侧是生成的图,右侧是参考图。风格和构图都参考了很多,模型和提示词的作用可以看出有一些的,比如盔甲,并且目前设置的权重才0.5,加到0.8试试。

到0.8,模型和提示词的作用就很少很少了,大概20%-左右了。

多个IPA串联

通过串联多个 IPAdapter 节点,你可以实现更复杂的图像处理和效果。每个节点都可以对图像进行特定的处理或转换,从而逐步构建出最终的图像结果。

可以看到,第二张图它参考的原图信息就更多了。

****IPA模型/统一加载器预设对比

大家肯定也跟我一样对IPA各个模型对最终结果的影响到底是什么样的,下面就在comfyui中实现一次精准的对比,看看在其他条件完全相同的情况下,各个模型的表现有何区别。

此处对比的输入都是统一的,提示词也是上面用过的。

对比全局输入节点

ipa模型对比工作流

参与对比的预设有light,standard,plus,face plus,full face, vit-g,对比结果来看,ipa的影响中light的影响相对更小,而face plus和full face则很明显侧向于脸部的特征的迁移。

对比的工作流,可以在文末获取。

权重影响

在整个ipa的作用过程中,无疑权重是非常重要的,权重高,它参考的原图信息就越多。

权重对比

同样的预设模型,都是使用的plus,第一张使用的是0.5的权重,第二张使用的是0.8的权重,可以很明显的看到第二张图,模型和提示词的作用基本很少了,而图片的信息则更多,无论是构图,风格,颜色,甚至主体都很重合了。

权重类型对比

IPA提供的权重类型有三种分别有:standard,prompt is important,style transfter,它们的区别如下:

Standard:

这是默认的权重类型,适用于大多数情况。它在生成图像时会平衡考虑提示词和图像风格,生成的图像通常比较中规中矩。

Prompt is Important:

这种权重类型会更加重视提示词的内容。当你希望生成的图像严格按照提示词描述时,可以选择这种权重类型。这种模式下,图像的风格可能会有所妥协,但提示词的内容会被更准确地反映出来。

Style Transfer:

这种权重类型主要用于风格迁移。它会更加注重图像的风格,而不是提示词的具体内容。当你希望生成的图像具有特定的艺术风格或视觉效果时,可以选择这种权重类型。

权重类型对比工作流

通过这个对比可以看出,standard是一个权重较高的参考,风格/构图是完全参考原图进行的,而第二种虽然名字叫prompt is important,但是提示词和模型的作用也只是加了一点作用,并不完全是以提示词为主,风格和构图都是参考也原图进行的,第三种则比较明显,构图是完全跟图片没有关系的,只有风格的迁移。

****IPA关注层遮罩

我们先来一个工作流看看,关注层遮罩的作用。

左边是没有遮罩的,右边是有关注层遮罩的,可以明显的看出来,加了遮罩,IPA就只会参考遮罩内的信息,这就是关注层遮罩,这对需要迁移图片中部分信息非常有用。

IPA高级节点的使用

首相我们加载一个ipa的基础文生图流程,然后找到ipa高级把ipa基础的节点替换掉。

可以看到IPA的高级节点多了很多的参数,这里我还是使用统一加载器加载模型和clip,当然也可以单独加载clip和ipa模型,为了方便就可以使用统一加载器。点开权重类型,你会发现高级节点这里的权重类型比基础节点多了很多。并且还不太一样,为了更精细化的控制图像生成过程,ipa的提供多种函数供我们选择。

****IPA高级权重类型对比

老规矩我们还是对比下这些权重类型有什么区别。这些权重类型大致可以分为三类:ease,weak,其他。

****IPA权重类型Linear & ease

linear & ease对比

linear顾名思义就是线性的,在整个生成过程中IPA的作用是一条线性的。

linear

ease in就是缓入, IPA****开始时权重高,越到后面权重越低,所以你会发现我们对比图中,图片风格构图都跟提示词更相近。

ease in

ease out 则跟ease in恰恰相反, IPA越到后面作用越大,但是我们都知道,在SD****生图过程中,初始噪声是很重要的,越早进入对构图影响越大,所以你会发现我们对比图中我们人物会更趋向于提示词和模型,但是风格会更多的参考图片,

ease in out 则表示IPA的作用在开始和结束时候作用更大,而生成中则以提示词和模型为主,你会发现IPA对整个图片就很大了,构图风格都是比较强的作用,而提示词的作用则稍显弱。

revers in out则跟ease in out完全相反,模型和提示词的作用在开始和结束都起作用,只有在生成图像时, IPA****作用于生成过程。所以在对比图中,图片无论是风格还是构图都是更偏向于提示词和模型的。

IPA权重类型 weak对比

weak类型的权重,在整个生成图片的过程中,IPA的作用始终都在,只是作用的强度有所不同。

值得一提的是,这里的weak其实指的我们模型和提示的强度,而不是ipa的强度。

weak

weak input****是指模型和提示词在开始时很少,在接下来的过程中组件增加。在对比图中可以看出,IPA因为进入的时间比较早,所以最终的图片更多的参考图片,无论是构图还是风格都是更像原图一点。

weak out 则更weak in完全相反,提示词更早更多的进入生成过程,可以看到最终的图片,风格和构图都更偏向于提示词和模型, IPA****的作用则更小。

weak middle 则指在整个过程中模型和提示和IPA同时发挥作用,这是一个不推荐使用的类型,因为这整个过程是不可控的,你不能说它像模型,也不能说它像图片,效果是非常不如意的。非常不建议使用。而且提示词和模型的作用也比较弱,目测大概30%左右。

strong middle,和上面一样,只是增强了提示词的作用,减弱了IPA的作用,但是也是效果不怎么好的,也不推荐使用,不怎么好掌握。

风格权重对比

风格权重对比

style transfer这和基础版的作用是一样的,就是只迁移风格,可以看到整个图的主体的构图是根据我们提示词来的,但是风格是大部分是迁移参考图的。

composition 构图,即只参考构图,看对比的图片中,除了构图其余部分都是遵循提示词和模型生成。

strong style transfer 强风格迁移,整个图片的大部分风格都是来自于对比图。

工作流获取看文末哦。

IPA **clip视觉图像处理******

由于图像在CLIP的默认图像处理器中是居中裁剪的,因此IP-Adapter最适合方形图像。对于非正方形的图像,它会错过中心以外的信息。

可以很明显的看到,上部分和下面部分都没有参考,只参考了中间部分,那要怎么办呢?这里就要用到IPA提供的一个特殊的节点,clip视觉图像处理的节点。

它实际的作用就是对图像进行裁剪,让IPA可以更好的参考。

加了clip视觉图像处理的节点之后,那就可以选择更好的参考图片的哪一部分。这里主要有六种方式进行裁剪,分别是上/下/左/右/中/pad。

多图组合参考

如果我们有两张图都想要SD参考这么办呢,这里我们就要用到IPA的高级节点中的合并嵌入组选项,我们先用高级节点加载两张图片组合成批次试试。

可以看到我们最终的图像确实就是参考了两张图的风格和构图,比如这个风格就有第一张图的风格,这个人物的耳朵就有点这个小猫的耳朵的感觉。

合并嵌入组选项对比

这里也给大家准备了一个工作流对比,各个选项的效果。

  • concat 相连顾名思义就是把两组图像的embedings进行首尾相连,这样做的好处就是它会隔离不同图像的不同embedings;
  • add相加就是把两组图像的embedings全部堆叠在一起,当我们的参考图的特性相对单一,很多重复的时候,它权重就会很高,很容易出现过拟合的情况;
  • subtract相减这种方式就是用第一张图的embedings减去第二章图片的embedings,剩下的embedings传给采样器进行生图,作者说这是一个实验性的算法,其实它并不适用。
  • average平均这种方式是一个比较常用的,它会将两张图的embedings进行一个融合平均处理以后,发送给采样器,可以看到它的效果有点类似于Add,但是他比Add要柔和,更没有那么容易出现过拟合;
  • norm average规格化平均,其实是一种归一化的算法,它会把全部的token做了归一化然后再进行平均,所谓的归一化,我们可以理解为把一些弱的token提上来了,把一些强调的token降下来了,这种算法出来的效果其实不是特别的好,因为我们生成图片中总要有重点,有突出的地方。

负面图像

升级到plus后大家会发现,没有降噪幅度这个选项了,那要如何实现降噪来控制重绘幅度呢?没错就是使用负面图像。

我们这里还原下作者之前的一个降噪过程。找到ipa噪波这个节点,连入图像预览就可以看到,这样一张噪波图了。如果我们把强度降低就会发现这其实就是一张图片加了很多噪点而已。

这样我们就做了和之前的重绘幅度一样的降噪效果,只要调整这个降噪强度即可。

那负面为什么要给这样一张图像内,我们来推导琢磨一下,首相负面就是相当于反话嘛或者是说我不想要什么,那我肯定是不想要噪点,所以说将噪点图传给它就会进一步降噪,进一步的去除,也就是相当于重绘了,那我们给的强度越高,重绘就越高。

接下我们再说说这个底图为什么要反转呢?其实它反转过来后它代表了很多的意思,首先呢这个构图就不是我想要的,我不想要倒立,不想要它光影是反的,我肯定想要正常的光影和构图,进一步强掉我们参考图的反面特性,这样才会加强我们的正向图像。

图像编码

我们都知道在IPA中有一个非常方便的功能,它可以把我们多张图编译成一个embedings,之后呢我们只需要调用embedings就可以,plus被图像编码和编码合并拆开了,我们只需要找到ipa编码这个节点,可以看到这个我需要给每一个图像编码

ok这里,我们调整下整个工作流

这样的话,也可以通过调整每张图片的强度获得不同的效果,对于精细调整图片就有了更好的手段。比如在上面,我让第一张图的强度是0.6,这样我们会发现参考第二张图的信息就更多了,注意我这里使用的average,如果使用的concat,这里无论你如何调整,效果都不怎么会便,原因呢上面已经说了。

Tiled 不规则图像预处理

提前对不规则的图像进行一个预处理,可以看到第一个处理的图像的遮罩给到了上面,第二个遮罩的作用区域给到了下面,这样话通过遮罩将遮罩未处理的图像进行了裁剪,这么做的好处有两点,第一是对不同比例的图像进行一个还原,比如宽图和竖图可以更好的进行信息的收集和处理,第二个好处就是它可以还原很多画面中细节,因为预处理之后的图像分辨率是非常低的,通过这个节点可以将一个很高的分辨率进行不同的裁切和平铺。

好了,今天的分享就到此结束啦!

如果大家对此感兴趣的话,不妨去尝试一下哦。最后,我要衷心感谢每一位阅读我文章的朋友。

如果你觉得文章还不错,麻烦随手点个赞吧,当然也欢迎你关注我⭐,这样你就能第一时间收到我的推送啦, 你的支持是我持续创作的动力 。

需要工作流的可以留言哦!