新一代“垫图”神器,IP-Adapter的完整应用解读

这篇具有很好参考价值的文章主要介绍了新一代“垫图”神器,IP-Adapter的完整应用解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导读

不用训练lora,一张图就能实现风格迁移,还支持多图多特征提取,同时强大的拓展能力还可接入动态prompt矩阵、controlnet等等,这就是IP-Adapter,一种全新的“垫图”方式,让你的AIGC之旅更加高效轻松。

都是“垫图”,谁能还原你心中的图

“垫图”这个概念大家肯定都不陌生,此前当无法准确用prompt描述心中那副图时,最简单的办法就是找一张近似的,然后img2img流程启动,一切搞定。

可img2img简单的同时,也有它绕不过去的局限性,比如对prompt的还原度不足、生成画面多样性弱,特别是当需要加入controlnet来进行多层控制时,参考图、模型、controlnet的搭配就需要精心挑选,不然出图效果常常让人当场裂开…

但现在,我们有了新的“垫图”神器——IP-Adapter,在解读它之前,先来直观的感受一下它的效果。

ip adapter,人工智能,AI作画

效果可以说相当炸,那IP-Adapter就是终极答案了么?它的泛化性如何?兼容性是否足够?对prompt支持怎么样?当真的要接入现实工作中它还有什么拓展的能力呢?让我们一一来看。

IP-Adapter的核心优势,只画你关心的事

IP-Adapter和img2img虽然在操作上都是“垫图”,但它们的底层实现可以说是毫无关系。

用个不严谨但好理解的例子,“IP-Adapter”和“img2img”就是两位画师,现在给出prompt要求它俩画一个男人,在不提供参考图的情况下,它们大概都会画成图1的模样,但是当我们加上参考图2的时候,两者的区别就显现了。

ip adapter,人工智能,AI作画

img2img相当于直接盖在参考图上开始临摹,虽然知道要画个男人,但会在老虎的基础上去修改,始终会很别扭,中间不免出现老虎和男人混淆的情况,画出一些强行混合不知所谓的图来。因为在这个流程中,参考图更为重要,一切是在它基础上画出来的,结果也更倾向于参考图。

ip adapter,人工智能,AI作画

IP-Adapter则不是临摹,而是真正的自己去画,它始终记得prompt知道自己要画个男人,中间更像请来了徐悲鸿这样的艺术大师,将怎么把老虎和人的特点融为一体,讲解得偏僻入里,所以过程中一直在给“男人”加上“老虎”的元素,比如金黄的瞳仁、王字型的抬头纹、虎纹的须发等等。此时,prompt更为重要,因为这才是它的始终目标。

ip adapter,人工智能,AI作画

当然这些都是在一定的参数范围内,超过了阈值,那必然是要走极端的,照着参考图去copy了。但即便这样也可以看到img2img只是1:1的复制,而IP-Adapter有更多prompt的影子。

把简单的“垫图”,拓展得大有前途

在理解IP-Adapter的逻辑之后,会发现它带来的改变可不只是“垫图”,这里先展示一下它在我们工作中的实例,然后再和大家一步步的去拆解它。

ip adapter,人工智能,AI作画

以上这些效果实现很简单,只需要添加两层controlnet,一层用来提供IP-Adapter,一层利用canny用来对需要添加的商品进行绘制、固化即可。

ip adapter,人工智能,AI作画

如果只是在webui中应用,那到这里其实已经ok了。但这次我们要更进一步,利用新工具,去实现更有创造力的能力。

以下重点想分享的更多是工程搭建的能力和效果(具体的方法,我们会放到以后详细的讲解):

① 一张图就是一个lora,大大降低了训练的成本

② 多参考图接入,提供更丰富的生成结果

③ 利用对prompt的强注意力,提供prompt matrix丰富结果

④ 基于comfyui的工作流部署,实现多步骤自动化生成

以往要想实现一个具体的设计风格,需要针对性的训练lora,背后涉及训练素材的搜集、打标、模型训练、效果检验等多个环节,通常要花一两天,并且结果还存在很强的不确定性。

但现在,通过IP-Adapter这一个步骤,在几分钟内就直观的看到结果,大大节省了时间,敏捷程度简直天壤之别。

ip adapter,人工智能,AI作画

ip adapter,人工智能,AI作画

当我们拥有这些特征,几乎就得到一个“即时lora”,而需要付出的成本只是去找几张符合预期的参考图。

同时IP-Adapter还能一次读取多张参考图,让生成的结果拥有更丰富的多样性和随机性,这是在img2img流程中无法实现的,也是两者之间区别最大的地方。

ip adapter,人工智能,AI作画

ip adapter,人工智能,AI作画

此刻,让我们把思路再打开一些,因为IP-Adapter对prompt的强注意力,prompt中的信息能更直观的反应在结果中。于是我们可以在继承img风格的同时,通过替换prompt里面的关键词,指向不同的结果,形成prompt的组合矩阵,更进一步的拓展生成结果的多样性。

ip adapter,人工智能,AI作画

更进一步,再加入不同的controlnet和批量素材读取,来实现对生成结果的可控引导,以及利用批量读取能力,来提供更加丰富的模板。一套”0成本即时lora + controlnet可控生成 + prompt matrix多样生成“的自动化流程就搭建完成了。

这个流程我们已经用在项目中,至于效果,大家的反馈概括为一句话就是——一键三连。

ip adapter,人工智能,AI作画

下面这张图就是上述流程部署在实际工作中的样子,载体是comfyui,它和webui都是基于stable diffusion能力,但和webui的网页化界面不同,它将SD的能力分解成不同的节点,通过节点关联搭建来实现各种功能。所以更加开放、自由、多源,并且可以实现流程的自动化,极大的提升了实际应用中的效率,下一期我们会专门针对它来进行解读。

ip adapter,人工智能,AI作画

ip adapter,人工智能,AI作画

到这里,关于IP-Adapter背后的原理和应用就整理完了,它有非常多的优点,但也非常需要结合实际的场景来应用,还是那个观念,没有最好的方法,只有适合的方法。

希望大家用的开心,有什么想法建议,十万吨的欢迎,我们下期再见。


这里是枯燥的分割线

有点无聊,但也很有得聊

看过它的表现的效果之后,再从底层原理看看IP-Adapter到底有什么特别。

我们知道stable diffustion是扩散模型,它的核心作用机制就是对噪音的处理,prompt可以看做是我们的目标,通过不断的去噪过程,向着目标越来越靠近,最终生成出预期的图片。

ip adapter,人工智能,AI作画

IP-Adapter则是将图片单独提出作为一种提示特征,相比以往那种只是单纯的把图像特征和文本特征抽取后拼接在一起的方法,IP-Adapter通过带有解耦交叉注意力的适配模块,将文本特征的Cross-Attention 和图像特征的Cross-Attention区分开来,在Unet的模块中新增了一路Cross-Attention模块,用于引入图像特征。

相当于将原本SD中img和prompt拼合成一个向量的做法分开来, img和prompt都会单独的组成向量, 然后交给unet层, 这样img中的特征就可以更好的被保留下来,从而实现对图像特征更显性的继承和保留。

本质上IP-Adapter就是txt2img的流程,流程中prompt还是最关键的,只是中间利用IP-Adapter强化了参考图的提示作用。

ip adapter,人工智能,AI作画

作为对比,img2img是直接将参考图传入unet,去替换了原始的随机噪音,这样所有的生成结果都是建立在它的基础上,于是有了前面人和老虎混杂的现象就比较好理解了。

ip adapter,人工智能,AI作画

最后的最后,我们通过伪码看一下它俩的底层区别

结构上:

img2img使用unet架构,包括一个编码器(下采样)和一个解码器(上采样)

IP-Adapter包括一个图像编码器和包含解耦交叉注意力机制的适配器

# img2img
class UNet(nn.Module):
    # ... (U-Net architecture code)

# IP-Adapter
class IPAdapter(nn.Module):
    def __init__(self, image_encoder, text_to_image_model):
        # ... (initialization code)


流程上:

img2img通过编码/解码器,需要通过一系列上采样、下采样

IP-Adapter通过图像编码器,文本提示和图像特征通过适配模块与预训练的文本到图像模型进行交互

# img2img
encoded = unet_encoder(img2img_input)
decoded = unet_decoder(encoded)

# IP-Adapter
image_features = image_encoder(ip_adapter_input[1])
adapted_features = adapter_module(ip_adapter_input[0], image_features)


输出上:

img2img是输出一个转换后的图像

IP-Adapter是根据文本和图像提示生成的图片

# img2img
output_image = img2img_model(img2img_input)

# IP-Adapter
generated_image = ip_adapter_model(ip_adapter_input)


以上,真的结束了。see you soon

ip adapter,人工智能,AI作画

作者:京东零售 何云深

来源:京东云开发者社区 转载请注明来源文章来源地址https://www.toymoban.com/news/detail-830794.html

到了这里,关于新一代“垫图”神器,IP-Adapter的完整应用解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【playwright】新一代自动化测试神器playwright+python系列课程12_playwright_frame中元素定位

    网页中经常嵌套frame框架,在网页中标签为iframe或frame的元素就是frame框架 如图 或者 在frame框架中的元素时不能直接定位的,selenium处理frame,需要切换到frame中,然后再切换出来,操作比较麻烦,那么playwright对于frame的操作会不会更加简单呢? 答案是肯定的,playwright不需要切

    2024年01月18日
    浏览(45)
  • 【playwright】新一代自动化测试神器playwright+python系列课程22_playwright模拟鼠标操作_悬停_右击_双击

    有些元素,只有你鼠标移动到它那个位置上,他才会展开或者显示一些内容,这时候就要用到hover()操作了。 以个人设置这个下拉菜单,来看一下hover的使用。 项目实践代码 以双击关闭弹出的流程窗口为例,看一下dblclick()使用 项目实践代码 以弹出的右键菜单为例,看一下

    2024年01月18日
    浏览(40)
  • 1.5 新一代信息技术

    战略性新兴产业是以重大技术突破和重大发展需求为基础,对经济社会全局和长远发展具有重大引领带动作用,知识技术密集、物质资源消耗少、成长潜力大、综合效益好的产业。 依据《国务院关于加快培育和发展战略性新兴产业的决定》(国发(2010) 32号),七个战略性新兴产

    2023年04月08日
    浏览(64)
  • No.14新一代信息技术

    新一代信息技术产业包括:加快建设宽带、泛在、融合、安全的信息忘了基础设施,推动新一代移动通信、下一代互联网核心设备和智能终端的研发及产业化,加快推进三网融合,促进物联网、云计算的研发和示范应用。 大数据、云计算、互联网+、物联网、智慧城市等是新

    2024年02月09日
    浏览(48)
  • 新一代硬件安全:第一章-简介

    Chapter 1 Introduction 1.1 Fundamentals of Hardware Security In our modern age of omnipresent and highly interconnected information technology, cybersecurity becomes ever more challenged. For example, with the rise of the Internet of Things (IoT), most such equipment is connected to the internet in some way, often inscrutable to the regular customers. This f

    2024年02月12日
    浏览(56)
  • 云计算:新一代的技术革命

    云计算,作为21世纪的一项重要技术革命,已在全球范围内引发了深远的影响。它改变了我们存储和处理数据的方式,使得企业无需再建设和维护昂贵的本地服务器和数据中心。本文将深入探讨云计算的基本概念,类型,主要优点,以及它在未来可能的发展趋势。 云计算的基

    2024年02月12日
    浏览(52)
  • 新一代通信协议 - Socket.D

    一、简介 Socket.D 是一种二进制字节流传输协议,位于 OSI 模型中的5~6层,底层可以依赖 TCP、UDP、KCP、WebSocket 等传输层协议。由 Noear 开发。支持异步流处理。其开发背后的动机是用开销更少的协议取代超文本传输协议(HTTP),HTTP 协议对于许多任务(如微服务通信)来说效率低下。

    2024年01月20日
    浏览(62)
  • 字节跳动新一代云原生消息队列实践

    作者:火山引擎云原生计算研发工程师|雷丽媛 上文我们了解了在字节跳动内部业务快速增长的推动下,经典消息队列 Kafka 的劣势开始逐渐暴露,在弹性、规模、成本及运维方面都无法满足业务需求。因此字节消息队列团队研发了计算存储分离的 云原生 消息引擎 BMQ ,在极

    2024年02月20日
    浏览(68)
  • Flink CDC 新一代数据集成框架

    前言: 主要讲解了技术原理,入门与生产实践,主要功能:全增量一体化数据集成、实时数据入库入仓、最详细的教程。Flink CDC 是Apache Flink的一个重要组件,主要使用了CDC技术从各种数据库中获取变更流并接入到Flink中,Apache Flink作为一款非常优秀的流处理引擎,其SQL API又

    2024年02月13日
    浏览(61)
  • SpringCloud LoadBalancer 新一代负载均衡器

    工作中使用 OpenFeign 进行跨服务调用,最近发现线上经常会遇到请求失败。 通过排查我们发现不是接口超时,而是有时候会请求到已经下线的服务导致报错。这多发生在服务提供者系统部署的时候,因为系统部署的时候会调用 Spring 容器 的 shutdown() 方法, Eureka Server 那里能够

    2023年04月22日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包