编辑:[db:作者] 时间:2024-08-25 02:34:28
都是“垫图”,谁能还原你心中的图
“垫图”这个观点大家肯定都不陌生,此前当无法准确用prompt描述心中那副图时,最大略的办法便是找一张近似的,然后img2img流程启动,统统搞定。
可img2img大略的同时,也有它绕不过去的局限性,比如对prompt的还原度不敷、天生画面多样性弱,特殊是当须要加入controlnet来进行多层掌握时,参考图、模型、controlnet的搭配就须要精心挑选,不然出图效果常常让人当场裂开…
但现在,我们有了新的“垫图”神器——IP-Adapter,在解读它之前,先来直不雅观的感想熏染一下它的效果。
效果可以说相称炸,那IP-Adapter便是终极答案了么?它的泛化性如何?兼容性是否足够?对prompt支持怎么样?当真的要接入现实事情中它还有什么拓展的能力呢?让我们逐一来看。
IP-Adapter的核心上风,只画你关心的事IP-Adapter和img2img虽然在操作上都是“垫图”,但它们的底层实现可以说是毫无关系。
用个不严谨但好理解的例子,“IP-Adapter”和“img2img”便是两位画师,现在给出prompt哀求它俩画一个男人,在不供应参考图的情形下,它们大概都会画成图1的样子容貌,但是当我们加上参考图2的时候,两者的差异就显现了。
img2img相称于直接盖在参考图上开始临摹,虽然知道要画个男人,但会在老虎的根本上去修正,始终会很别扭,中间不免涌现老虎和男人稠浊的情形,画出一些强行稠浊不知所谓的图来。由于在这个流程中,参考图更为主要,统统是在它根本上画出来的,结果也更方向于参考图。
IP-Adapter则不是临摹,而是真正的自己去画,它始终记得prompt知道自己要画个男人,中间更像请来了徐悲鸿这样的艺术大师,将怎么把老虎和人的特点融为一体,讲解得偏僻入里,以是过程中一贯在给“男人”加上“老虎”的元素,比如金黄的瞳仁、王字型的举头纹、虎纹的须发等等。此时,prompt更为主要,由于这才是它的始终目标。
当然这些都是在一定的参数范围内,超过了阈值,那一定是要走极度的,照着参考图去copy了。但即便这样也可以看到img2img只是1:1的复制,而IP-Adapter有更多prompt的影子。
把大略的“垫图”,拓展得大有出息
在理解IP-Adapter的逻辑之后,会创造它带来的改变可不但是“垫图”,这里先展示一下它在我们事情中的实例,然后再和大家一步步的去拆解它。
以上这些效果实现很大略,只须要添加两层controlnet,一层用来供应IP-Adapter,一层利用canny用来对须要添加的商品进行绘制、固化即可。
如果只是在webui中运用,那到这里实在已经ok了。但这次我们要更进一步,利用新工具,去实现更有创造力的能力。
以下重点想分享的更多是工程搭建的能力和效果(详细的方法,我们会放到往后详细的讲解):
① 一张图便是一个lora,大大降落了演习的本钱
② 多参考图接入,供应更丰富的天生结果
③ 利用对prompt的强把稳力,供应prompt matrix丰富结果
④ 基于comfyui的事情流支配,实现多步骤自动化天生
以往要想实现一个详细的设计风格,须要针对性的演习lora,背后涉及演习素材的搜集、打标、模型演习、效果考验等多个环节,常日要花一两天,并且结果还存在很强的不愿定性。
但现在,通过IP-Adapter这一个步骤,在几分钟内就直不雅观的看到结果,大大节省了韶光,敏捷程度切实其实寰宇之别。
当我们拥有这些特色,险些就得到一个“即时lora”,而须要付出的本钱只是去找几张符合预期的参考图。
同时IP-Adapter还能一次读取多张参考图,让天生的结果拥有更丰富的多样性和随机性,这是在img2img流程中无法实现的,也是两者之间差异最大的地方。
此刻,让我们把思路再打开一些,由于IP-Adapter对prompt的强把稳力,prompt中的信息能更直不雅观的反应在结果中。于是我们可以在继续img风格的同时,通过更换prompt里面的关键词,指向不同的结果,形成prompt的组合矩阵,更进一步的拓展天生结果的多样性。
更进一步,再加入不同的controlnet和批量素材读取,来实现对天生结果的可控勾引,以及利用批量读取能力,来供应更加丰富的模板。一套”0本钱即时lora + controlnet可控天生 + prompt matrix多样天生“的自动化流程就搭建完成了。
这个流程我们已经用在项目中,至于效果,大家的反馈概括为一句话便是——一键三连。
下面这张图便是上述流程支配在实际事情中的样子,载体是comfyui,它和webui都是基于stable diffusion能力,但和webui的网页化界面不同,它将SD的能力分解身分歧的节点,通过节点关联搭建来实现各种功能。以是更加开放、自由、多源,并且可以实现流程的自动化,极大的提升了实际运用中的效率,下一期我们会专门针对它来进行解读。
到这里,关于IP-Adapter背后的事理和运用就整理完了,它有非常多的优点,但也非常须要结合实际的场景来运用,还是那个不雅观念,没有最好的方法,只有适宜的方法。
希望大家用的愉快,有什么想法建议,十万吨的欢迎,我们下期再见。
这里是呆板的分割线
有点无聊,但也很有得聊
看过它的表现的效果之后,再从底层事理看看IP-Adapter到底有什么特殊。
我们知道stable diffustion是扩散模型,它的核心浸染机制便是对噪音的处理,prompt可以看做是我们的目标,通过不断的去噪过程,向着目标越来越靠近,最终生成出预期的图片。
IP-Adapter则是将图片单独提出作为一种提示特色,比较以往那种只是纯挚的把图像特色和文本特色抽取后拼接在一起的方法,IP-Adapter通过带有解耦交叉把稳力的适配模块,将文本特色的Cross-Attention 和图像特色的Cross-Attention区分开来,在Unet的模块中新增了一起Cross-Attention模块,用于引入图像特色。
相称于将原来SD中img和prompt拼合成一个向量的做法分开来, img和prompt都会单独的组成向量, 然后交给unet层, 这样img中的特色就可以更好的被保留下来,从而实现对图像特色更显性的继续和保留。
实质上IP-Adapter便是txt2img的流程,流程中prompt还是最关键的,只是中间利用IP-Adapter强化了参考图的提示浸染。
作为比拟,img2img是直接将参考图传入unet,去更换了原始的随机噪音,这样所有的天生结果都是建立在它的根本上,于是有了前面人和老虎殽杂的征象就比较好理解了。
末了的末了,我们通过伪码看一下它俩的底层差异
构造上:
img2img利用unet架构,包括一个编码器(下采样)和一个解码器(上采样)
IP-Adapter包括一个图像编码器和包含解耦交叉把稳力机制的适配器
# img2imgclass UNet(nn.Module): # ... (U-Net architecture code)# IP-Adapterclass IPAdapter(nn.Module): def __init__(self, image_encoder, text_to_image_model): # ... (initialization code)
流程上:
img2img通过编码/解码器,须要通过一系列上采样、下采样
IP-Adapter通过图像编码器,文本提示和图像特色通过适配模块与预演习的文本到图像模型进行交互
# img2imgencoded = unet_encoder(img2img_input)decoded = unet_decoder(encoded)# IP-Adapterimage_features = image_encoder(ip_adapter_input[1])adapted_features = adapter_module(ip_adapter_input[0], image_features)
输出上:
img2img是输出一个转换后的图像
IP-Adapter是根据文本和图像提示天生的图片
# img2imgoutput_image = img2img_model(img2img_input)# IP-Adaptergenerated_image = ip_adapter_model(ip_adapter_input)
以上,真的结束了。see you soon
作者:京东零售 何云深
来源:京东云开拓者社区 转载请注明来源
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/rqz/82564.html
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com