前段时间,沉寂了很久的Flux官方团队Black Forest Labs发布了新模型:FLUX.1 Kontext,这是一套支持生成与编辑图像的流匹配(flow matching)模型。FLUX.1 Kontext不仅支持文生图,还实现了上下文图像生成功能,可以同时使用文本和图像作为提示词,并能无缝提取修改视觉元素,生成全新且协调一致的画面。
FLUX.1 Kontext的图像编辑是广泛意义上的图像编辑,不仅支持图像局部编辑(对图像中的特定元素进行针对性修改,而不影响其余部分),还可以实现角色一致性(保留图像中的独特元素如参考角色或物体,使其在多个场景和环境中保持一致)。下图(a)到图(b)以及图(c)到(d)属于图像局部编辑,而(b)到(c)则是变动较大的编辑,但是角色保持一致。
下面是角色一致性的另外一个例子,角色一致性生成特别适用于故事板生成和渐进式叙事创作等场景。
此外,FLUX.1 Kontext还可以实现风格参考:根据文本提示生成新颖场景,同时保留参考图像中的独特风格。下图展示了风格参考的具体例子:
FLUX.1 Kontext的能力也不仅限于上面,它可以基于图像和文本实现广泛的图像生成,比如下面的一些例子:
Black Forest Labs除了发布新模型,还给出了FLUX.1 Kontext的技术报告:
FLUX.1 Kontext的实现也比较简单直接,就是在原来的文生图模型DiT基础上,增加额外的图像作为输入,其架构如下所示。这里输入图片也通过VAE encoder编码得到latent tokens,然后和noisy latent tokens拼接在一起送入DiT模型中。Flux的DiT位置编码采用3D RoPE,其中时间维度的位置默认为0,这里给输入图像的时间维度位置设置为1来区分。理论上FLUX.1 Kontext这种架构可以支持任意数量的输入图片,但是这里实际训练中只支持一个输入图片。
FLUX.1 Kontext训练只支持一个图像作为输入,那么推理时也限制一个图像,不支持多图。但是大家发现,对于多个图像,可以将其拼接成一个图像送入模型实现图像融合的效果,如下图所示。这说明FLUX.1 Kontext有很好的图像理解能力。
FLUX.1 Kontext总共有三个版本:FLUX.1 Kontext [max]、FLUX.1 Kontext [pro]、FLUX.1 Kontext [dev]。其中FLUX.1 Kontext [max]是性能最好的版本,而FLUX.1 Kontext [pro]次之,这两个模型都同时支持文生图和图像编辑。
FLUX.1 Kontext [dev]是本次开源的模型,可以看成是之前开源模型 FLUX.1 [dev]的图像编辑版本,它只支持纯图像编辑,不支持文生图。而且和 FLUX.1 [dev]一样,开源的FLUX.1 Kontext [dev]是不支持商用的。
为了评估FLUX.1 Kontext的性能,Black Forest Labs还专门构建了一个图像编辑任务的评测集KontextBench,它包含 1026 组独特的图像-文本指令对,源自108 张多样化来源的基准图像,涵盖五大核心任务:局部指令编辑、全局指令编辑、文字编辑、风格参考、角色参考。目前这个评测集也已经开源:
在KontextBench上的人工评测显示,FLUX.1 Kontext [dev] 在多数类别中表现优于现有开源模型(字节跳动的Bagel、HiDream的E1-Full)和闭源模型(谷歌的Gemini-Flash Image)。
Artificial Analysis对战平台上的评估结果也显示,FLUX.1 Kontext [dev] 优于其它开源的图像编辑模型:
另外,Black Forest Labs联合英伟达针对Blackwell架构优化了FLUX.1 Kontext [dev]的TensorRT权重,显著提升了推理速度并降低显存占用。
当前BF16/FP8/FP4三种量化版本已经在Hugging Face上开源:
最新的diffusers也已经支持FLUX.1 Kontext [dev]:
import torch
from diffusers import FluxKontextPipeline
from diffusers.utils import load_image
pipe = FluxKontextPipeline.from_pretrained("black-forest-labs/FLUX.1-Kontext-dev", torch_dtype=torch.bfloat16)
pipe.to("cuda")
input_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")
image = pipe(
image=input_image,
prompt="Add a hat to the cat",
guidance_scale=2.5
).images[0]
而且,ComfyUI上也已经支持FLUX.1 Kontext [dev],支持多步骤上下文编辑、角色一致性保持、局部精细化编辑、风格参照生成、物体/背景移除、多图输入处理和文字内容编辑功能。下面是一些例子:
文章来自于“AI小小将”,作者“AI小将”。
【部分开源免费】FLUX是由Black Forest Labs开发的一个文生图和图生图的AI绘图项目,该团队为前SD成员构成。该项目是目前效果最好的文生图开源项目,效果堪比midjourney。
项目地址:https://github.com/black-forest-labs/flux
在线使用:https://fluximg.com/zh
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0