许可协议:Apache-2.0
前置模型:
- kandinsky-community/kandinsky-2-2-prior
标签:
- 文本生成图像
- kandinsky
推理:不支持
Kandinsky 2.2
Kandinsky 继承了 Dall-E 2 和潜在扩散模型的最佳实践,同时引入了一些新思路。
它采用 CLIP 模型作为文本和图像编码器,并在 CLIP 模态的潜在空间之间建立扩散图像先验(映射)。这种方法提升了模型的视觉表现力,并开辟了图像融合与文本引导图像处理的新领域。
Kandinsky 模型由 Arseniy Shakhmatov、Anton Razzhigaev、Aleksandr Nikolich、Igor Pavlov、Andrey Kuznetsov 和 Denis Dimitrov 共同创建。
使用方式
Kandinsky 2.2 已集成至 diffusers 库!
pip install diffusers transformers accelerate
文本引导的局部修复生成
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
import numpy as np
pipe = AutoPipelineForInpainting.from_pretrained("kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()
prompt = "一顶帽子"
init_image = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main" "/kandinsky/cat.png"
)
mask = np.zeros((768, 768), dtype=np.float32)
mask[:250, 250:-250] = 1
out = pipe(
prompt=prompt,
image=init_image,
mask_image=mask,
height=768,
width=768,
num_inference_steps=150,
)
image = out.images[0]
image.save("cat_with_hat.png")

⚠️⚠️⚠️ Kandinsky 局部修复的重大变更 ⚠️⚠️⚠️
我们在以下 Pull Request 中对 Kandinsky 修复流程进行了不兼容的改动:https://github.com/huggingface/diffusers/pull/4207。此前我们采用黑色像素表示遮盖区域的掩码格式,这与 diffusers 中其他所有流程不一致。现 Kandinsky 已改用白色像素表示遮盖区域。
若需在生产环境使用 Kandinsky 修复功能,请按以下方式调整掩码:
import PIL.ImageOps
mask = PIL.ImageOps.invert(mask)
mask = 1 - mask
模型架构
概览
Kandinsky 2.1 是基于 unCLIP 和潜在扩散的文本条件扩散模型,由基于 Transformer 的图像先验模型、UNet 扩散模型和解码器构成。
下图左侧展示了图像先验模型的训练流程,中间为文本到图像的生成过程,右侧则是图像插值演示。
具体而言,图像先验模型通过预训练的 mCLIP 模型生成的 CLIP 文本和图像嵌入进行训练。训练后的先验模型用于为输入文本提示生成 mCLIP 图像嵌入。输入文本提示及其 mCLIP 图像嵌入将共同参与扩散过程。最终的 MoVQGAN 模型作为解码器,将潜在表示转换为实际图像。
细节
模型的图像先验训练基于 LAION 改进美学数据集完成,随后在 LAION 高清数据上进行微调。
主文本到图像扩散模型基于 LAION 高清数据集中的 1.7 亿文本-图像对训练(关键筛选条件是图像分辨率不低于 768x768)。保留 Kandinsky 2.0 的 UNet 扩散模块使我们无需从头训练。在微调阶段,额外使用了从公开渠道收集的 200 万张超高质量高清图文配对数据集(包含 COYO、动漫、俄罗斯地标等类型)。
评估
我们在 COCO_30k 数据集上以零样本模式量化评估 Kandinsky 2.1 的性能。下表展示了 FID 指标结果。
生成模型在 COCO_30k 上的 FID 指标值
模型 |
FID (30k) |
eDiff-I (2022) |
6.95 |
Image (2022) |
7.27 |
Kandinsky 2.1 (2023) |
8.21 |
Stable Diffusion 2.1 (2022) |
8.59 |
GigaGAN, 512x512 (2023) |
9.09 |
DALL-E 2 (2022) |
10.39 |
GLIDE (2022) |
12.24 |
Kandinsky 1.0 (2022) |
15.40 |
DALL-E (2021) |
17.89 |
Kandinsky 2.0 (2022) |
20.00 |
GLIGEN (2022) |
21.04 |
更多技术细节请参阅即将发布的技术报告。
引用格式
若此项目对您的研究有所帮助,请引用:
@misc{kandinsky 2.2,
title = {kandinsky 2.2},
author = {Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Vladimir Arkhipkin, Igor Pavlov, Andrey Kuznetsov, Denis Dimitrov},
year = {2023},
howpublished = {},
}