InstantID 原班团队推出了风格迁移的新方法 InstantStyle。风格化图像生成
风格化图像生成,也常称为风格迁移,其目标是生成与参考图像风格一致的图像。此前基于 diffusion 的方法(比如 LoRA)通常需要批量的同风格数据进行训练,无法迁移到新的风格中,或者基于 inversion(如 StyleAlign),通过将风格图像还原到 latent noise 后,将其前向传播得到的 K、V 用于替换风格图像生成中的 K、V,但这类方法往往由于 inversion 的操作,造成风格退化。
最近,InstantID 原班团队推出了风格迁移的新方法 InstantStyle,与人脸 ID 不同,它是一个通用的图像风格注入框架,采用两种简单但非常有效的技术,来实现风格和内容与参考图像的有效分离。
- 论文:InstantStyle: Free Lunch towards Style-Preserving in Text-to-Image Generation
- 论文地址:https://huggingface.co/papers/2404.02733
- 项目主页:https://instantstyle.github.io/
- 代码链接:https://github.com/InstantStyle/InstantStyle
- Demo 地址:https://huggingface.co/spaces/InstantX/InstantStyle
作者在文中花了较大篇幅介绍动机,(1)首先风格是欠定的,没有清晰的标准来定义,它囊括众多元素,比如色彩、氛围、材质、布局等,即使是人工评价,也很难有统一的结论;(2)此前基于 inversion 的方法会造成明显的风格退化,这对部分风格是无法接受的,比如纹理;(3)图像风格的注入,最棘手的问题是如何平衡风格注入强度以及参考图像的内容泄露。
对此,作者团队进行了一系列实验分析,他们发现,IP-Adapter 的问题被其它许多方法都明显夸大了,作者仅通过手动调整图像特征注入的权重,就解决了大部分论文中宣称的内容泄露问题。尽管如此,在一些情况下,IP-Adapter 仍然较难找到一个合适的阈值来平衡。由于目前 Adapter-based 的方法普遍使用 CLIP 提取图像特征,作者通过图像检索的例子确认,在 CLIP 特征空间中,图像和文本的特征是可以相加减的,答案显而易见,为什么不在注入网络之前,显式地减去可能会泄露的内容信息,从而对图像特征进行内容和风格解耦呢?
最后,受到 B-LoRA 方法的启发,作者细致分析了 IP-Adapter 在每一层注入的效果,惊奇地发现存在两个独立的层分别响应风格和空间布局的信息。为此,作者引出了提出的方法。
方法介绍
基于以上的观察和实验,作者提出了 InstantStyle 方法,如图所示,该方法核心包含两个模块:
(1)特征相减:利用 CLIP 空闲的特性,显式地进行特征相减,去除图像特征中内容的信息,减少参考图片内容对生成图片的影响。其中相比于风格的欠定,内容信息往往容易通过文本简单描述,所以可以利用 CLIP 的文本编码器提取内容特征,用于解耦。
(2)仅风格层注入:仅在特定风格层完成特征注入,隐式地实现风格和内容的解耦。作者在 UNet 的 mid block 附近,发现了分别控制风格和空间布局的两个特定层,并发现在某些风格中,空间布局可能也属于风格的一种。
整体而言,InstantStyle 的思路相当简单易懂,仅仅通过几行代码,就缓解了风格迁移中最困扰的内容泄露问题。
实验结果
作者在文中展示了两种策略的生成结果,这两种策略不局限于特定模型,可以分开独立使用,都实现了优异的效果。
特征相减的结果:
仅风格层注入:
和目前领先方法的对比:
基于原图的风格化:
社区玩法
InstantStyle 已经提供了丰富的代码实现,开发者可以直接通过 GitHub 找到,包括文生图、图生图以及 Inpainting。近日还被视频生成项目 AnyV2V 作为推荐的风格化工具。对于社区用户,InstantStyle 还原生就支持了 ComfyUI(该结点作者也是 InstantStyle 的共同作者),用户可以通过更新 IP-Adapter 结点即可快速尝试。
作为 InstantID 作者,又怎么少得了和 InstantID 的联名呢,相比于 InstantID 中仅通过文本来控制生成风格,InstantStyle 无疑可以让风格更加多样。作者团队会在 GitHub 星标到达 1000 后,官方支持人脸的风格化功能。
作者也官方支持了 Huggingface Demo,可以在线试玩。