许可协议:apache-2.0
前置模型:
- kandinsky-community/kandinsky-2-2-prior
标签:
- 文本生成图像
- 康定斯基
推理:false
康定斯基2.2
康定斯基模型继承了Dall-E 2和潜在扩散模型的最佳实践,同时引入了创新理念。
该模型采用CLIP作为文本与图像编码器,并在CLIP多模态的潜在空间之间建立扩散图像先验(映射)关系。这一技术路线显著提升了模型的视觉表现力,为图像融合与文本引导的图像编辑开辟了新天地。
康定斯基模型由Arseniy Shakhmatov、Anton Razzhigaev、Aleksandr Nikolich、Igor Pavlov、Andrey Kuznetsov及Denis Dimitrov共同开发。
使用指南
康定斯基2.2现已集成至diffusers库!
pip install diffusers transformers accelerate
文本生成图像
from diffusers import AutoPipelineForText2Image
import torch
pipe = AutoPipelineForText2Image.from_pretrained("kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "年轻女性肖像,蓝色眼眸,电影质感"
negative_prompt = "低质量,劣质"
image = pipe(prompt=prompt, negative_prompt=negative_prompt, prior_guidance_scale=1.0, height=768, width=768).images[0]
image.save("portrait.png")

文本引导的图像到图像生成
from PIL import Image
import requests
from io import BytesIO
url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"
response = requests.get(url)
original_image = Image.open(BytesIO(response.content)).convert("RGB")
original_image = original_image.resize((768, 512))

from diffusers import AutoPipelineForImage2Image
import torch
pipe = AutoPipelineForImage2Image.from_pretrained("kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()
prompt = "奇幻景观,电影级光影"
negative_prompt = "低质量,劣质"
image = pipe(prompt=prompt, image=original_image, strength=0.3, height=768, width=768).images[0]
image.save("fantasy_land.png")

图像插值
from diffusers import KandinskyV22PriorPipeline, KandinskyV22Pipeline
from diffusers.utils import load_image
import PIL
import torch
pipe_prior = KandinskyV22PriorPipeline.from_pretrained(
"kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
)
pipe_prior.to("cuda")
img1 = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
)
img2 = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/starry_night.jpeg"
)
images_texts = ["一只猫", img1, img2]
weights = [0.3, 0.3, 0.4]
prompt = ""
prior_out = pipe_prior.interpolate(images_texts, weights)
pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16)
pipe.to("cuda")
image = pipe(**prior_out, height=768, width=768).images[0]
image.save("starry_cat.png")

模型架构
概览
康定斯基2.2是基于unCLIP和潜在扩散的文本条件扩散模型,由基于Transformer的图像先验模型、UNet扩散模型和解码器构成。
架构示意图中:左侧图表描述图像先验模型训练流程,中央为文本到图像生成过程,右侧展示图像插值功能。
具体而言,图像先验模型使用预训练CLIP-ViT-G模型生成的CLIP文本和图像嵌入进行训练。训练后的先验模型可生成输入文本提示的CLIP图像嵌入。文本提示及其CLIP图像嵌入将共同参与扩散过程。MoVQGAN模型作为最终模块,将潜在表示解码为实际图像。
技术细节
图像先验模型的训练基于LAION改进美学数据集,并在LAION高分辨率数据上微调。
主文本到图像扩散模型先在LAION高分辨率数据集训练,后使用从公开渠道单独收集的200万张超高分辨率带描述图像(COYO、动漫、俄罗斯地标等)进行微调。
康定斯基2.2的核心改进是替换CLIP-ViT-G。其图像编码器显著提升了模型生成更具美学价值的图像和理解文本的能力。
由于CLIP模型更换,图像先验模型重新训练,文本到图像扩散模型经过2000次迭代微调。支持512x512至1536x1536多种分辨率及任意宽高比训练,因此可生成1024x1024任意比例的输出。
性能评估
我们在COCO_30k数据集上以零样本模式量化评估康定斯基2.1的性能。下表展示FID指标:
模型 |
FID(30k) |
eDiff-I (2022) |
6.95 |
Image (2022) |
7.27 |
康定斯基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 |
康定斯基1.0 (2022) |
15.40 |
DALL-E (2021) |
17.89 |
康定斯基2.0 (2022) |
20.00 |
GLIGEN (2022) |
21.04 |
更多信息请参阅即将发布的技术报告。
引用格式
若此项目对您的研究有所帮助,请引用:
@misc{康定斯基2.2,
title = {康定斯基2.2},
author = {Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Vladimir Arkhipkin, Igor Pavlov, Andrey Kuznetsov, Denis Dimitrov},
year = {2023},
howpublished = {},
}